﻿package net.wangit;

import java.util.Map;

import net.wangit.context.ActionContext;


/**
 * 页面对象(可访问的单元)。
 * 
 * @author watson Feb 24, 2010
 */
public interface Page {
	// 添加页面底部执行的JavaScript脚本
	public abstract void addTailScript(String s);

	// 页面模板参数值对象，可用来设置模板中自定义变量的值，设置方式：Map.put(变量名,变量值)。
	public abstract Map<String, String> getAttributes();

	// 取得单元编号。
	public abstract String getId();

	// 取得单元对象。
	public abstract Unit getUnit();

	// 设置<BODY>属性。
	public abstract void setBodyAttribute(String s);

	// 设置引入的css文件路径，此路径相对于应用根路径，以"/"开头，有多个时以","分隔。
	public abstract void setCssPaths(String s);

	// 设置<HEAD>内的属性，放置于<HEAD>和</HEAD>之间。
	public abstract void setHead(String s);

	// 设置主标题。
	public abstract void setHeading(String s);

	// 设置页面开头处引入的js文件路径，此路径相对于应用根路径，以"/"开头，有多个时以","分隔。
	public abstract void setHeadJsPaths(String s);

	// 设置副标题。
	public abstract void setSubheading(String s);

	// 设置页面结尾处引入的js文件路径，此路径相对于应用根路径，以"/"开头，有多个时以","分隔。
	public abstract void setTailJsPaths(String s);

	// 设置模板路径，此路径相对于“{home}/template/”。
	public abstract void setTemplate(String s);

	// 设置浏览器标题。
	public abstract void setWindowTitle(String s);

	// 将Page对象转换为HTML字符串并输出。
	public abstract void write(ActionContext actioncontext) throws Exception;
}
